package cn.sc.summer.token.encrypt.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

/**
 * 类名：加密配置参数信息
 *
 * @author a-xin
 * @date 2024/5/11 14:49
 */
@Data
@Component
@RefreshScope
@ConfigurationProperties("encrypt.api")
public class EncryptProperties {

    /**
     * 是否开启加解密
     */
    Boolean encrypt = Boolean.TRUE;

    /**
     * 是否开启请求参数解密
     */
    Boolean decryptReq = Boolean.TRUE;

    /**
     * 是否开启返回数据加密
     */
    Boolean encryptResp = Boolean.TRUE;

    /**
     * 是否开启feign传输加密
     */
    Boolean encryptFeign = Boolean.TRUE;

    /**
     * 是否开启加解密日志打印
     */
    Boolean encryptLog = Boolean.TRUE;

    /**
     * 前端加密私钥
     */
    String webPrivateKey;

    /**
     * 前端加密公钥
     */
    String webPublicKey;

    /**
     * 服务端加密私钥
     */
    String serverPrivateKey;

    /**
     * 服务端加密公钥
     */
    String serverPublicKey;

    /**
     * feign请求加密私钥
     */
    String feignPrivateKey;

    /**
     * feign请求加密公钥
     */
    String feignPublicKey;

    /**
     * 请求参数解密白名单
     */
    String[] decryptWhite;

    /**
     * 返回数据加密白名单
     */
    String[] encryptWhite;

    /**
     * 单服务返回数据加密白名单
     */
    String[] serverEncryptWhite;

    /**
     * 单服务请求数据解密白名单
     */
    String[] serverDecryptWhite;

}
